using M13.Game.Item;
using M13.Game.World;
using UnityEngine;

namespace M13.Base
{
    #region Input相关

    public struct AxisInput
    {
        public float axisXInput;
        public float axisYInput;
    }
    public struct ScrollWheel
    {
        public float wheelInput;
    }
    public struct NumKey
    {
        public int numInput;
    }
    public struct Evecute0Button
    {
        public float execute0Input;
    }
    public struct Evecute1Button
    {
        public float execute1Input;
    }

    public struct DebugInfoBroadButton
    {
        public float debuginfoInput;
    }
    public struct InventoryActionButton
    {
        public float inventoryInput;
    }
    public struct CameraLeftRotButton
    {
        public float cameraLeftRotInput;
    }
    public struct CameraRightRotButton
    {
        public float cameraRightRotInput;
    }
    public struct MotionSwitchButton
    {
        public float motionSwitchInput;
    }
    public struct GameMenuButton
    {
        public float gameMenuInput;
    }
    #endregion

    #region UI相关-----------------------------------------------------------

    public struct StartGameButtonOfMainMenu { }
    public struct OptionButtonOfMainMenu { }
    public struct ExitButtionOfMainMenu { }


    public struct IntoWorldButton { public SaveConfig saveConfig; }
    public struct SearchBoxValueChanged { }
    public struct IntoWorldCreationMenuButton { }
    public struct ExitFromSaveMenuButton { }
    public struct RefreshSaveListsButton { }


    public struct DeleteSaveButton { public SaveConfig saveConfig; }
    public struct ConfirmDeleteSaveButton { public string saveName; }
    public struct CancelDeleteSaveButton { }

    public struct CreateNewSaveButton { public SaveConfig saveConfig; }

   
    public struct ExitFormWorldCreationMenuButton { }

    public struct SaveNameInputChanged { }
    public struct SaveSeedInputChanged { }
    #endregion

    #region 生命周期-------------------------------------------------------

    public struct IntoWorld { public SaveConfig saveConfig; }
    public struct QuitWorld { public SaveConfig saveConfig; }
    public struct CreateWorld { public SaveConfig saveConfig; }
    public struct CreateWorldFinished { public SaveConfig saveConfig; }

    public struct InitWorldFinished { }

    #endregion

    public struct ItemDestroyedWhenZoneDurability { }
    
    public struct PlayerExecute0Event { public Item item; public Vector3 execute0Position; }
    public struct PlayerExecute1Event { public Item item; public Vector3 execute0Position; }
}